home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / mtrandom.d < prev    next >
Text File  |  1997-10-26  |  4KB  |  82 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *  MAGICTOOLS   Modula's  All purpose  GEM  Interface  Cadre  Toolbox  *
  4.  *               ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus, sowie die   *
  11.  * Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
  12.  * oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail-    *
  13.  * boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen    *
  14.  * Einverst„ndnisserkl„rung des Autors.                                 *
  15.  *                                                                      *
  16.  * Die Verbreitung des Moduls als Teil eines gelinkten Programms ist    *
  17.  * fr Lizenznehmer ausdrcklich erlaubt!  Der Autor beh„lt sich das    *
  18.  * Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
  19.  * widerrufen.                                                          *
  20.  *----------------------------------------------------------------------*)
  21.  
  22. (*----------------------------------------------------------------------*
  23.  * mtRandom     Zufallszahlengenerator.  Der Algorithmus basiert auf    *
  24.  *              Donald E. Knuths Additive congruential method aus "The  *
  25.  *              art of computer programming, V2"                        *
  26.  *----------------------------------------------------------------------*)
  27.  
  28. DEFINITION MODULE mtRandom;
  29.  
  30. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  31.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  32.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  33.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  34.  
  35.  
  36.  
  37.  
  38.  
  39. PROCEDURE Randomize;
  40. (* Initialisiert den Generator. Eine Zufallszahlen-Sequenz nach einem
  41.  * Randomize kann nicht wiederholt werden.  Randomize wird im Modulk”rper
  42.  * bereits aufgerufen, so daž immer ein initialisierter Generator zur
  43.  * Verfgung steht.
  44.  *)
  45.  
  46. PROCEDURE RandomInit (initial: CARDINAL);
  47. (* Initialsiert ebenfalls den Generator, mit dem Unterschied, daž eine
  48.  * Sequenz von Zufallszahlen wiederholt werden kann. Dazu wird die
  49.  * Variable 'initial' benutzt, um die erste Zufallszahl zu erzeugen.
  50.  * Ein Aufruf von RandomInit mit gleicher 'initial' erzeugt immer die
  51.  * gleiche Sequenz Zufallszahlen.
  52.  *)
  53.  
  54. PROCEDURE RndCard (max: sCARDINAL): sCARDINAL;
  55. (* Liefert eine Zufalls-CARDINAL, im Bereich 0 bis max - 1, wenn max > 0, 
  56.  * bzw. im Bereich 0 bis MAX (CARDINAL) wenn max = 0 
  57.  *)
  58.  
  59. PROCEDURE RndLCard (max: lCARDINAL): lCARDINAL;
  60. (* Liefert eine Zufalls-LONGCARD, im Bereich 0 bis max - 1, wenn max > 0, 
  61.  * bzw. im Bereich 0 bis MAX (LONGCARD) wenn max = 0 
  62.  *)
  63.  
  64. PROCEDURE RndInt (max: sINTEGER): sINTEGER;
  65. (* Liefert eine Zufalls-INTEGER, im Bereich 0 bis max - 1, wenn max > 0, 
  66.  * bzw. im Bereich 0 bis MAX (INTEGER) wenn max = 0 
  67.  *)
  68.  
  69. PROCEDURE RndLInt (max: lINTEGER): lINTEGER;
  70. (* Liefert eine Zufalls-LONGINT, im Bereich 0 bis max - 1, wenn max > 0, 
  71.  * bzw. im Bereich 0 bis MAX (LONGINT) wenn max = 0 
  72.  *)
  73.  
  74. PROCEDURE RndReal (): REAL;
  75. (* Liefert eine REAL im Bereich 0.0 bis < 1.0 *) 
  76.  
  77. PROCEDURE RndLReal (): LONGREAL;
  78. (* Liefert eine LONGREAL im Bereich 0.0 bis < 1.0 *) 
  79.  
  80. END mtRandom.
  81.  
  82.